干货 | ClickHouse在携程数仓实践
The following article is from 携程技术 Author 小琴
作者简介
小琴,携程高级数据经理,负责酒店BI、数仓工作,专注于大数据应用领域多年。
一、背景
二、技术预研与技术方案选型
图1
三、集成开发环境封装
cat filename.orc | clickhouse-client -- query="INSERTINTO some_table FORMAT ORC"
四、ClickHouse代码优化技巧
2)用in替代join提高执行速度
五、异常问题处理
Code: 252, e.displayText() = DB::Exception: Too many parts (301) . Merges are processing significantly slower than inserts.
Merge过程是异步的,插入速度过快会导致以上错误,一般建议速度100w/s。
Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded
在服务器内存充裕的情况下增加内存配额,一般通过max_memory_usage来实现;
在服务器内存不充裕的情况下,建议将超出部分内容分配到系统硬盘上,但会降低执行速度;一般通过max_bytes_before_external_group_by 、max_bytes_before_external_sort参数来实现。
六、服务器故障处理
七、小结
截止2020年上半年,携程酒店订单主题以及P1体系报表已经全部实现完毕,大部分性能提升在200%以上,整体性能提升平均在400%左右,基本解决大部分应用场景的问题,后期我们将整合更多主题入仓,充分发挥ClickHouse的性能优势,进一步提升效率。此外,我们也在研究Flink+ClickHouse技术,推进实时数仓建设。
您的在看和转发是对我们最大的支持!O(∩_∩)O:
2020-10-10
2020-10-09
2020-10-08
2020-09-22
欢迎加入 大数据数仓中台交流群,跟同行零距离交流。如想进群,请加v:iom1128,备注:数仓,审核通过自主入群。
入群请联系小助手:iom1128『紫霞仙子』
!关注不迷路~ 各种福利、资源定期分享!